ECC interleaving for multi-track recording on magnetic tape

ABSTRACT

Conventional C2 coding and interleaving for multi-track data tape in LTO-3/4 do not support recording data onto a number of concurrent tracks which is not a power of two. Higher-rate longer C2 codes, which do not degrade error rate performance, are provided. An adjustable format and interleaving scheme accommodates future tape drives in which the number of concurrent tracks is not necessarily a power of two. A data set is segmented into a plurality of unencoded subdata sets and parity bytes are generated for each row and column. The parameters of the C2 code include N 2  as the least common multiple of the number of possible tracks to which codeword objects are to be written. COs are formed from N 2  C1 codewords, mapped onto a logical data track according to information within headers of the CO and modulation encoded into synchronized COs which are written to the tape.

RELATED APPLICATION DATA

The present application is related to commonly-assigned U.S. Pat. No.7,876,516, entitled REWRITE-EFFICIENT ECC/INTERLEAVING FOR MULTI-TRACKRECORDING ON MAGNETIC TAPE, and commonly-assigned and co-pending U.S.application Ser. No. 12/351,756, entitled REWRITING CODEWORD OBJECTS TOMAGNETIC DATA TAPE UPON DETECTION OF AN ERROR, both filed on the samedate as the present application, and both of which are herebyincorporated herein by reference in their entireties.

TECHNICAL FIELD

The present invention relates generally to formatting data to berecorded onto magnetic tape and, in particular, to an adjustable ECCformat and interleaving process to accommodate tape drives having amultiple of eight transducers/sensors per head to read and write from/toa multiple of eight number of tracks simultaneously.

BACKGROUND ART

The Linear Tape Open (LTO) formats Generations 3 and 4 useerror-correcting codes (ECC), which are based on a 2-dimensional productcode. The C1-code is arranged along the rows of the 2-dimensional array.It is an even/odd interleaved Reed-Solomon (RS) code of length 240giving rise to a row of length 480. The C2-code is arranged along thecolumns of the array. It is a RS-code of length 64 and dimension 54. Thecodewords are 2-dimensional arrays of size 64×480 and they are calledsubdata sets in the LTO standard. It is anticipated that futuregeneration of drives will write on more than 16 tracks simultaneously.However, all current generations of LTO formats (Gen-1 to Gen-4) arebased on the above C2 coding scheme which, together with its associatedinterleaving, cannot accommodate future tape-drive systems that willsupport heads with 16, 24, 32 or 48 (or other multiple of eight)transducers/sensors per head to read/write 16, 24, 32 or 48 (or othermultiple of eight) concurrent tracks, respectively.

SUMMARY OF THE INVENTION

The present invention provides higher-rate and longer C2 codes, which donot degrade error rate performance. The code rate associated with theseC2 codes is greater than the LTO-3/4 C2 code rate 54/64 and the codewordlength is greater than the LTO-3/4 C2 codeword length 64. In particular,the present invention provides a C2 code with rate K₂/N₂=84/96 andcodeword length N₂=96 and a corresponding encoder.

More specifically, the present invention provides methods, apparatus andcomputer program product for writing data to multi-track tape. In oneembodiment, a method comprises receiving a stream of user data symbols,the stream comprising a data set and segmenting the data set into aplurality S of unencoded subdata sets, each subdata set comprising anarray having K2 rows and K1 columns. For each unencoded subdata set,N1−K1 C1-parity bytes are generated for each row of a subdata set whichare appended to the end of the row to form an encoded C1 codeword havinga length N1. Similarly, for each unencoded subdata set, N2−K2 C2-paritybytes are generated for each column of the subdata set which areappended to the end of the column to form an encoded C2 codeword havinga length N2, whereby an encoded subdata set is generated having N2 C1codewords. From the S encoded data subsets, a plurality (S×N2)/2codeword objects (COs) are formed, each comprising a first header, afirst C1 codeword, a second header and a second C1 codeword. Each CO ismapped onto a logical data track according to information within theheaders of the CO and modulation encoded into synchronized COs thatcontain various sync patterns in addition to modulation encoded COs. Tsynchronized COs are then written simultaneously to the tape, where Tequals the number of concurrent active tracks on the tape.

In another embodiment, a data storage tape device comprises a hostinterface through which a stream of user data symbols comprising a dataset is received and a segmenting module operable to segment the data setinto a plurality S of unencoded subdata sets, each subdata setcomprising an array having K2 rows and K1 columns. A C1 encoder isoperable to generate N1−K1 C1 parity bytes for each row of a subdata setand append the C1 parity bytes to the end of the row to form an encodedC1 codeword having a length N1 and a C2 encoder is operable to generateN2−K2 C2 parity bytes for each column of the subdata set and append theC2 parity bytes to the end of the column to form an encoded C2 codewordhaving a length N2, whereby an encoded subdata set is generated havingN2 C1 codewords. A codeword object formatter is operable to form aplurality (S×N2)/2 codeword objects (COs) from the S encoded datasubsets, each CO comprising a first header, a first C1 codeword, asecond header and a second C1 codeword. A codeword object interleaver isoperable to map each CO onto a logical data track according toinformation within the headers of the CO. A modulation encoder isoperable to encode the COs into synchronized COs that contain varioussync patterns in addition to modulation encoded COs. A write channel,including a write head, is operable to write T synchronized COssimultaneously to the tape, where T equals the number of concurrentactive tracks on the tape.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a magnetic tape drive with which thepresent invention may be implemented;

FIG. 2 is a schematic representation of an encoded data set, includinginterleaved C1 and C2 ECC;

FIG. 3 is a block diagram of components of the present invention used toform data sets from a stream of user data symbols;

FIGS. 4A and 4B are schematic representations of unencoded and encodedsubdata sets, respectively;

FIG. 5 illustrates a codeword object (CO) of the present invention;

FIG. 6 is a logic diagram of a C2-encoder of the present invention for a[96, 84, 13]-RS code;

FIG. 7 illustrates an alternative CO of the present invention;

FIG. 8 illustrates an example of a distribution of subdata sets along 24tracks of recording media in accordance with the present invention;

FIG. 9 illustrates a synchronized CO of the present invention; and

FIG. 10 illustrates an alternative synchronized CO of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Some of the functional units described in this specification have beenlabeled as modules in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like. Modules may also beimplemented in software for execution by various types of processors. Anidentified module of executable code may, for instance, comprise one ormore physical or logical blocks of computer instructions which may, forinstance, be organized as an object, procedure, or function. A module ofexecutable code could be a single instruction, or many instructions, andmay even be distributed over several different code segments, amongdifferent programs and across several memory devices.

Furthermore, the described features, structures, or characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details areprovided, such as examples of programming, software modules, hardwaremodules, hardware circuits, etc., to provide a thorough understanding ofembodiments of the invention. One skilled in the relevant art willrecognize, however, that the invention can be practiced without one ormore of the specific details, or with other methods, components and soforth. In other instances, well-known structures, materials, oroperations are not shown or described in detail to avoid obscuringaspects of the invention.

FIG. 1 is a high level block diagram of a data tape drive 100 in whichthe present invention may be incorporated. Data to be recorded istransmitted from a host (not shown) to the drive 100 through a hostinterface 102. The data undergoes a first encoding in a C1 encoder 104and passed to a DRAM buffer controller 106. The C1-encoded dataundergoes a second encoding in a C2 encoder 108 and is stored in a DRAMbuffer 110. The data is subsequently stored in an SRAM buffer 112 andformatted in a formatter 114. Formatted data is sent to a write channeland then to a write head 118 which records the data onto the tape 120.

When the data is read back from the tape 120, a read head 122 detectsthe data and passes it to a read channel. The data is then processed ina de-formatter 126 and COs are verified in a verifier 128. The data isthen decoded and, ultimately, sent to the requesting host.

The Linear Tape Open (LTO) format is based on the concept of data sets(the smallest unit written to tape) and subdata sets. A data setcontains two types of data: user data and administrative informationabout the data set, the latter being in a Data Set Information Table(DSIT). All data is protected by an error correction code (ECC) tominimize data loss due to errors or defects. A data set comprises anumber of subdata sets, each containing data arranged in rows. A subdataset row may contain user data or contain the DSIT. As illustrated inFIG. 2, each row consists of two interleaved byte sequences. A firstlevel ECC (C1 ECC) is computed separately for the even bytes and for theodd bytes for each row. The resulting C1 ECC even and odd parity bytesare appended to the corresponding row, also in an interleaved fashion.The ECC protected row is the Codeword Pair (CWP). The even bytes formthe even C1 Codeword while the odd bytes form the odd C1 Codeword. Asecond level ECC (C2 ECC) is computed for each column and the resultingC2 ECC parity bytes are appended to the corresponding columns. The ECCprotected column is a C2 Codeword.

The subdata set, when so protected by C1 and C2 ECC, is the smallestECC-protected unit written to tape. Each subdata set is independent withrespect to ECC; that is, errors in a subdata set affect only thatsubdata set. The power of any ECC algorithm depends upon the number ofparity bytes and is stated in terms of its correction capability. For agiven number of N1−K1 C1-parity bytes computed for a C1 codeword, up tofloor((N1−K1)/4) errors may be corrected in each of the two interleavesof that codeword, where floor(x) denotes the integer part of the realnumber x. And, for a given number of N2−K2 C2-parity bytes computed fora C2 codeword, up to floor((N2−K2)/2) errors or N2−K2 erasures may becorrected in that C2 Codeword.

It will be appreciated that multiple errors in the same subdata set canoverwhelm the ability of the C1 or the C2 correction power to the extentthat an error occurs when the data is read. Errors may be caused by verysmall events such as small particles or small media defects. Errors mayalso be caused by larger events such as scratches, tracking errors ormechanical causes.

To mitigate the possibility that a single large error will affectmultiple Codewords in a single subdata set, some methods of writingplace Codewords from each subdata set as far apart as possible along andacross the tape surface. A single error would therefore have to affectmultiple Codewords from the same subdata set before the ECC correctioncapability is overwhelmed. Spatial separation of Codewords from the samesubdata set reduces the risk and is accomplished in the following mannerfor a multi-track recording format. For each track of a set of tracksbeing recorded simultaneously, a Codeword Quad (CQ) is formed bycombining a Codeword Pair from one subdata set with a Codeword Pair froma different subdata set. The resulting CQ is written on one of themultiple recorded tracks. In like manner, CQs are formed for allremaining tracks by combining Codeword Pairs, all Codeword Pairs beingfrom differing subdata sets. The group of CQs written simultaneously iscalled a CQ Set.

As illustrated in the block diagram of FIG. 3, data sets of a specifiedfixed size are formed by segmentation of a stream of user data symbolsin a data set segmentation module 302. The data set is furtherpartitioned into S unencoded subdata sets. The subdata set structure ismatched to an ECC module 304, which is based on a C1/C2 product code.The unencoded subdata sets comprise 2-dimensional arrays of bytes ofsize K₂×K₁, where K₁ and K₂ are the dimensions of the C1 and C2 code,respectively (FIG. 4A). A C1-encoder 306 operates on rows and addsparity bytes in each row. A C2-encoder 308 operates on the C1-encodedcolumns and appends parity in each column. The resulting C1/C2-encodedsubdata set is an N₂×N₁ array of bytes, where N₁ and N₂ are the lengthsof the C1 and C2 code, respectively (FIG. 4B). It will be appreciatedthat, although in FIG. 3 and in FIG. 4 the C1 encoding is shown as beingperformed first followed by the C2 encoding, the resulting encodedsubdata sets are the same regardless of whether C1 encoding is performedfirst followed by C2 encoding or whether C2 encoding is performed firstfollowed by C1 encoding.

In LTO-3/4, S=64 subdata sets (or codewords) form a data set (DS), theC1 code has length N₁=480 and the C2 code has length N₂=64. TheC1-codewords within a DS are fully determined by the subdata set (SDS)number (in the range from 0 to S−1) and by the row number within thesubdata set (codeword array). In LTO-3/4, this assignment is calledcodeword pair designation. It is determined by the following expression:C1-codeword_number=SDS_number+64×row_number,where SDS_number=0, 1, 2, . . . , S−1 and row_number=0, 1, . . . , 63.For LTO-3/4, the C1-codeword_number index takes values from 0 to 4095.

A structure 500 as shown in FIG. 5 is a Codeword Object (CO) structureand reflects the organization of the basic unit that includesC1-codewords and associated headers.

From the ECC module 304, a CO formatter 310 forms COs consisting of two10-byte headers 502, 504 and of two C1-codewords 506, 508 out of theS×N₂=4096 C1-codewords per DS. Thus, there are S×N₂/2=2048 COs, whichare numbered from 0 to 2047. The CO structure 500 with index CO_numbercontains the two C1-codewords with indices C1-codeword_number that arerelated as follows. The indices C1-codeword_number_0 andC1-codeword_number_1 of the first and second C1-codewords, respectively,are given byC1-codeword_number_(—)0=2×CO_numberC1-codeword_number_(—)1=2×CO_number+1.

According to a first embodiment of the present invention, the C2-codegenerated by the C2 encoder 308 is a Reed-Solomon (RS) code of lengthN₂=96 over the Galois field GF(256). The Galois field GF(2⁸) is definedby the primitive polynomial P(z)=z⁸+z⁴+z³+z²+1 and the primitive elementin GF(2⁸)=GF(2)[z]/(z⁸+z⁴+z³+z²+1) is:α=(0 0 0 0 0 0 1 0)=z(modulo z ⁸ +z ⁴ +z ³ +z ²+1).Note that α²⁵⁵=1. The generator polynomials for the C2-codes are chosento have as few different coefficients as possible, which helps reducethe complexity of encoders and decoders. In particular, the generatorpolynomial for the [N₂=96, K₂=84, d_(min)=13] RS-code is given by:

$\begin{matrix}{{G(x)} = {\prod\limits_{{i = 1},\mspace{11mu}\ldots\mspace{11mu},6}\;{\left( {x + \alpha^{128 - i}} \right)\left( {x + \alpha^{127 + i}} \right)}}} \\{= {\prod\limits_{{i = 1},\mspace{11mu}\ldots\mspace{11mu},6}\;\left( {x^{2} + {\left( {\alpha^{128 - i} + \alpha^{127 - i}} \right)x} + 1} \right)}} \\{= {x^{12} + {\alpha^{224}x^{11}} + {\alpha^{32}x^{10}} + {\alpha^{209}x^{9}} + {\alpha^{99}x^{8}} + {\alpha^{32}x^{7}} +}} \\{{\alpha^{80}x^{6}} + {\alpha^{32}x^{5}} + {\alpha^{99}x^{4}} + {\alpha^{209}x^{3}} + {\alpha^{32}x^{2}} + {\alpha^{224}x} + 1.}\end{matrix}$

The encoding by the C2 encoder 308 is performed by a linear feedbackshift register (LFSR) 600 as shown in FIG. 6. In the exampleillustrated, the LFSR 600 includes 12 registers R0 to R11 (602A-602L)and 11 multipliers 604A-604K whose feedback coefficients α^(c) are givenby the generator polynomial of the [96,84,13]-RS code. The initial stateof the LFSR 600 is the all-zero state. The N₂−K₂=12 parity bytes of anRS codeword are obtained by clocking all the systematic K₂=84 data bytesthrough the LFSR, multiplying them in the respective multipliers604A-604L, adding 606A-606K the results to the respective registeroutputs and reading out registers R0 to R11 (602A-602L). In an actualimplementation, the number of multipliers may be reduced by “reusing”multipliers whose coefficients are duplicated. For example, althoughillustrated as separate multipliers, multipliers 604A and 604K, havingthe common coefficient α²²⁴, may be implemented as a single multiplier,multipliers 604B, 604E, 604G and 604J, having the common coefficientα³², may be implemented as a single multiplier, etc. Thus, the LFSR 600may be more efficiently implemented with five multipliers instead of 11.Moreover, the number n of registers, the number n of adders and thenumber n−1 of multipliers may be greater than or less than the numbersillustrated in FIG. 6 to accommodate different codes.

Additional generator polynomials may also be defined. A generatorpolynomial for a [128,112,17] code is given by:

$\begin{matrix}{{G(x)} = {\prod\limits_{{i = 1},\mspace{11mu}\ldots\mspace{11mu},8}\;{\left( {x + \alpha^{128 - i}} \right)\left( {x + \alpha^{127 + i}} \right)}}} \\{= {x^{16} + {\alpha^{240}x^{15}} + {\alpha^{892}x^{14}} + {\alpha^{212}x^{13}} + {\alpha^{79}x^{12}} + {\alpha^{192}x^{11}} +}} \\{{\alpha^{116}x^{10}} + {\alpha^{151}x^{9}} + {\alpha^{198}x^{8}} + {\alpha^{151}x^{7}} + {\alpha^{116}x^{6}} + {\alpha^{192}x^{5}} +} \\{{\alpha^{79}x^{4}} + {\alpha^{212}x^{3}} + {\alpha^{89}x^{2}} + {\alpha^{240}x} + 1.}\end{matrix}$

And, a generator polynomial for a [192,168,25] RS code is given by:

$\begin{matrix}{{G(x)} = {\prod\limits_{{i = 1},\mspace{11mu}\ldots\mspace{11mu},12}\;{\left( {x + \alpha^{128 - i}} \right)\left( {x + \alpha^{127 + i}} \right)}}} \\{= {x^{24} + {\alpha^{90}x^{23}} + {\alpha^{98}x^{22}} + {\alpha^{228}x^{21}} + {\alpha^{2}x^{20}} + {\alpha^{26}x^{19}} +}} \\{{\alpha^{48}x^{18}} + {\alpha^{43}x^{17}} + {\alpha^{34}x^{16}} + {\alpha^{183}x^{15}} + {\alpha^{65}x^{14}} + {\alpha^{170}x^{13}} +} \\{{\alpha^{24}x^{12}} + {\alpha^{170}x^{11}} + {\alpha^{65}x^{10}} + {\alpha^{183}x^{9}} + {\alpha^{34}x^{8}} + {\alpha^{43}x^{7}} +} \\{{\alpha^{48}x^{6}} + {\alpha^{26}{x^{5}++}\alpha^{65}x^{10}} + {\alpha^{2}x^{4}} + {\alpha^{228}x^{3}} + {\alpha^{98}x^{2}} +} \\{{\alpha^{90}x} + 1.}\end{matrix}$

It is assumed that the C1-codewords are pre-defined and, thus, theirlength N₁ is given. That is, the C1-code may be a 2-way interleavedRS-code of length 480 as in LTO-4, as illustrated in FIG. 5, or may be a4-way interleaved RS-code of length 960, as illustrated in FIG. 7. Theformat of the present invention includes subdata sets, which are arraysof dimension N₂×N₁, where N₂=96, and a predetermined number S of subdatasets forms a data set. The codeword number is determined by theexpression:C1-codeword_number=SDS_number+S×row_number,where SDS_number=0, 1, 2, . . . , S-1 and row_number=0, 1, . . . , N₂−1.

The CO structures are mapped onto the logical tracks (16 for LTO-3/4)according to the information in the header, viz., C1-codeword_numberindex. This mapping will be referred to as CO-interleaving and isperformed in a CO interleaver 312 (FIG. 3). In LTO-4, the CO structuresis referred to as a codeword quad because it consists of four RScodewords. In this case, there are S=64 subdata sets per DS.

An alternative CO structure is shown in FIG. 7, where one C1-codewordconsists of a 4-way interleaved RS-code. This CO structure is referredto as a codeword octet. In this case, the DS is partitioned into S=32subdata sets.

Again, each CO consists of two 10-byte headers and two C1-codewords outof the S×N₂ C1-codewords per DS and, thus, there are S×N₂/2 COs, whichare numbered in consecutive order starting from 0. The CO structure withindex CO_number contains the two C1-codewords with indicesC1-codeword_number that are related as follows. The indicesC1-codeword_number_0 and C1-codeword_number_1 of the first and secondC1-codewords, respectively, are given by:C1-codeword_number_(—)0=2×CO_numberC1-codeword_number_(—)1=2×CO_number+1.Therefore, two C1-codewords in an CO are taken from two SDSs withconsecutive SDS_number indices.

The COs are written simultaneously onto the tape in batches of T COs,where T is the number of concurrent active tracks. The CO-interleaver312 assigns a logical track number t in the range 0, 1, . . . , T−1 toeach CO of the DS. Thus, the S×N₂/2 COs of a DS are grouped into batchesof T COs based on their consecutive CO_number indices and then thesebatches are written onto the T active tracks. Thereby, one CO of eachbatch is written onto one of the T tracks in a one-to-one fashion, whichis determined by the CO-interleaver 312. More specifically, theCO-interleaver 312 maps a CO structure with index n=CO_number to logicaltrack number t based on the formula:t≡5 floor(2n/S)+n(mod T)  [Expression 1]where floor(x) denotes the integer part of the real number x and (mod T)denotes the modulo operation with modulus T in which the remainder is inthe range 0, 1, . . . , T−1. For N₂=96, one can accommodate T=16, 24,32, 48 or 96 parallel tracks. In FIG. 8, the result of theCO-interleaving is illustrated for a DS with S=96 SDSs by showing thedata set layout of two pairs of SDSs along T=24 tracks. The 96 dotscorrespond to the 96 COs of the SDSs with SDS_number 0 and 1; the 96crosses correspond to the 96 COs of the SDSs with SDS_number 2 and 3. Itcan be seen that the 96 C1-codewords within a SDS are uniformlydistributed along and across the T=24 tracks.

The approach described in the embodiment described above is general andmay be applied also to C2-codes of length N₂=128 and N₂=192. In bothcases, the CO-interleaving Expression 1 is valid. For N₂=128, one canaccommodate T=16, 32, 64 or 128 parallel tracks and, for N₂=192, therecan be T=16, 24, 32, 48, 64, 96, or 192 tracks. When designing a C2-codeof the present invention, a determination would first be made of thenumber of possible parallel tracks T₁, T₂, . . . , T_(m) to which COsare to be written. N₂ may then be calculated as the least commonmultiple of numbers T₁, T₂, . . . , T_(m). For example, if it is desiredto accommodate T=16, 24, 32, 48 or 96 parallel tracks, the least commonmultiplier is N₂=96. Similarly, if it is desired to accommodate T=16,32, 64 or 128 parallel tracks, the least common multiplier is N₂=128.And, if it is desired to accommodate T=T=16, 24, 32, 48, 64, 96, or 192parallel tracks, the least common multiplier is N₂=192. It will beappreciated that the foregoing are provided as examples and that thepresent invention is not limited to any particular value of N₂ or to anyparticular number T of parallel tracks to which the COs are to bewritten.

After CO-interleaving and before writing them onto tape, the COs aremodulation encoded and transformed into synchronized codeword object(SCO) structures by inserting VFO, forward, resync and reverse syncfields. FIGS. 9 and 10 illustrate alternative COs. In LTO-4, the headersand codeword pairs are passed through a rate-16/17 RLL encoder resultingin RLL-encoded bit-sequences of length 85 and 4080, respectively. Moregenerally, the CO structures can be modulation encoded using anRLL-encoder of rate R_(H) for the header portion and an RLL-encoder ofrate R for the C1-codewords (FIG. 9). For the alternative CO structureof FIG. 7, the resulting SCO-structure is illustrated in FIG. 10, wherethe VFO, forward sync, re-sync and reverse sync fields have somesuitable lengths L_(VFO), L_(FS), L_(RS), and L_(FS), respectively.

The proposed interleaving scheme is designed to provide robustnessagainst dead tracks and have an increased robustness against stripeerrors (that is, errors across all tracks). The robustness of anECC/CO-interleaving scheme against stripe errors depends on threefactors: (i) the parameters [N₂, K₂, d_(min)] of the C2-code, (ii) theinterleaving depth given by the number S of subdata sets (SDS) withineach Data Set (DS), and (iii) the number T of parallel channels(tracks). In case of a stripe error, the decoder operates as follows.The C1-decoder detects that certain rows in a number of subdata sets areuncorrectable and provides erasure-flags of these rows to theC2-decoder. The C2-decoder performs erasure-decoding and can correct upto N₂−K₂−M erasures per subdata set while keeping a margin of M bytes toavoid miscorrections. If a stripe error along tape extends over no morethan (S/2)×(N₂−K₂−M)/T SCOs, then there are no more than (S/2)×(N₂−K₂−M)COs which are affected by errors and these erroneous COs are evenlydistributed by the inverse CO-interleaving map over the S/2 pairs ofsubdata sets of an affected DS. Thus, each subdata set will contain atmost N₂−K₂−M erased rows, which can be corrected and, therefore, themaximum stripe error length (MSEL) in terms of SCO units is given by:MSEL=S×(N ₂ −K ₂ −M)/(2T).The absolute length of the MSEL along the tape in [mm] depends on thelength of the SCO in [mm].

The maximum number of dead tracks (MNDT) that can be tolerated in theabsence of channel errors can be derived in a similar manner.Specifically, the formula:MNDT=floor((N ₂ −K ₂)/(N ₂ /T))may be used to compute the maximum number of dead tracks.

Based on the synchronized codeword quad (SCQ), which is the SCOstructure of LTO-4, TABLE 1 shows specific configurations of C2-codedesigns and properties with regard to maximum stripe error length anddead track support. In TABLE 1, an erasure-correction margin of M=2 wasassumed. It should be emphasized that the CO-interleaving Expression 1applies in all these cases. All C2-codes with N₂>64 have 3.7% improvedformat efficiency (FE) when compared to the C2-code in LTO-4 (see firstrow in TABLE 1). All of these long C2-codes have improved error rateperformance that translates into a gain in linear density. The lineardensity gains in TABLE 1 were obtained from measurements in the labusing a semi-analytic approach.

TABLE 1 Specific C2-Code Configurations for Codeword Quad-BasedSCO-Structures Relative FE Lin. density MSEL N₂ K₂ Tracks T S DS size in% gain in % in SCQs Dead tracks 64 54 16 64 1X 0 0 16 2 128 112 16 32 1X3.7 6.5 14 2 128 112 16 64 2X 3.7 6.5 28 2 128 112 32 64 2X 3.7 6.5 14 4128 112 32 128 4X 3.7 6.5 28 4 96 84 16 64   1.5X 3.7 4.0 20 2 96 84 2496   2.25X 3.7 4.0 20 3 96 84 32 128 3X 3.7 4.0 20 4 192 168 16 32  1.5X 3.7 8.5 22 2 192 168 24 48   2.25X 3.7 8.5 22 3 192 168 32 64 3X3.7 8.5 22 4

In TABLES 2 and 3, the results are summarized for the two describedembodiments for T=16 parallel tracks and SCO-structures, which are basedon codeword quads and octets, respectively. The length of a codewordoctet in [mm] is roughly twice as long as that of a codeword quad. Thus,for the ECC-1 scheme, the maximum stripe error length of 20 SCQs iscomparable to 10 SCOs in TABLES 2 and 3, respectively.

TABLE 2 Proposed C2-Code Configurations for Codeword Quad-BasedSCO-Structures and T = 16 Tracks Lin. Relative FE density MSEL Dead CodeN₂ K₂ S DS size in % gain in % in SCQs tracks LTO-4 64 54 64 1X   0 0 162 ECC-1 96 84 64 1.5X 3.7 4.0 20 2 ECC-2 192 168 32 1.5X 3.7 8.5 22 2

TABLE 3 Proposed C2-Code Configurations for Codeword Octet-BasedSCO-Structures and T = 16 Tracks. Lin. Relative FE density MSEL DeadCode N₂ K₂ S DS size in % gain in % in SCOs tracks ECC-1 96 84 32 1.5X3.7 4.0 10 2 ECC-2 192 168 32 3X   3.7 8.5 22 2

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies regardless of the particular type ofsignal bearing media actually used to carry out the distribution.Examples of computer readable storage media include recordable-typemedia such as a floppy disk, a hard disk drive, a RAM, and CD-ROMs.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated. Moreover, although described above withrespect to methods and systems, the need in the art may also be met witha computer program product containing instructions for writing data to amulti-track data tape medium or a method for deploying computinginfrastructure comprising integrating computer readable code into acomputing system for writing data to a multi-track data tape medium.

1. A method for writing data to a multi-track data tape, comprising:receiving a stream of user data symbols, the stream comprising a dataset; segmenting the data set into a plurality S of unencoded subdatasets, each subdata set comprising an array having K₂ rows and K₁columns; for each of the S unencoded subdata sets, generating N₁−K₁C1-parity bytes for each row of a subdata set and appending theC1-parity bytes to the end of the row to form an encoded C1 codewordhaving a length N₁; for each of the S unencoded subdata sets, generatingN₂−K₂ C2-parity bytes for each column of the subdata set and appendingthe C2-parity bytes to the end of the column to form an encoded C2codeword having a length N₂, whereby S encoded subdata set are generatedhaving N₂ C1 codewords; from the S encoded subdata sets, forming aplurality (S×N₂)/2 codeword objects (COs), each comprising a firstheader, a first C1 codeword, a second header and a second C1 codeword;mapping each CO onto a logical data track according to informationwithin the first and second headers of the CO; modulation encoding theCOs into synchronized COs; and writing T synchronized COs simultaneouslyto the tape, where T equals the number of concurrent active tracks onthe tape.
 2. The method of claim 1, further comprising: selecting anumber of possible parallel tracks T₁, T₂, . . . , T_(m) to which theCOs can be written; and determining the C2 codeword length N2 as theleast common multiple of T₁, T₂, . . . , T_(m).
 3. The method of claim1, wherein mapping each CO comprises mapping a CO having an indexn=CO_number to a logical track number t based on a formula t=5floor(2n/S)+n (mod T), where floor(x) denotes the integer part of thereal number x and (mod T) denotes the modulo operation with modulus T inwhich the remainder is in a range 0, 1, 2, . . . , T−1.
 4. The method ofclaim 1, wherein generating N₂−K₂ C2-parity bytes comprises applying anencoding operation characterized by a generator polynomial for a [N₂,K₂, d_(min)] Reed-Solomon (RS) code to each column of the subdata set.5. The method of claim 4, wherein the RS code is selected from a groupcomprising a [96, 84, 13] code, a [128, 112, 17] code and a [192, 168,25] code.
 6. A data storage tape device, comprising: a host interfacethrough which a stream of user data symbols comprising a data set isreceived; a segmenting module operable to segment the data set into aplurality S of unencoded subdata sets, each subdata set comprising anarray having K2 rows and K1 columns; a C1 encoder operable to generateN₁−K₁ C1-parity bytes for each row of the S unencoded subdata sets andappend the C1-parity bytes to the end of the row to form an encoded C1codeword having a length N₁; a C2 encoder operable to generate N₂−K₂C2-parity bytes for each column of the S unencoded sets subdata set andappend the C2-parity bytes to the end of the column to form an encodedC2 codeword having a length N₂, whereby S encoded subdata set aregenerated having N₂ C1 codewords; a codeword object formatter operableto form a plurality (S×N₂)/2 codeword objects (COs) from the S encodedsubdata sets, each CO comprising a first header, a first C1 codeword, asecond header and a second C1 codeword; a codeword object interleaveroperable to map each CO onto a logical data track according toinformation within the first and second headers of the CO; a modulationencoder operable to encode the COs into synchronized COs; and a writechannel, including a write head, operable to write T synchronized COssimultaneously to the tape, where T equals the number of concurrentactive tracks on a data storage tape.
 7. The data storage tape device ofclaim 6, wherein the C2 codeword length N₂ comprises the least commonmultiple of T₁, T₂, . . . , T_(m), where T₁, T₂, . . . , T_(m) are anumber of possible parallel tracks to which the COs are to be written.8. The data storage tape device of claim 6, wherein the codeword objectinterleaver is further operable to map a CO having an index n=CO_numberto a logical track number t based on a formula t=5 floor(2n/S)+n (modT), where floor(x) denotes the integer part of the real number x and(mod T) denotes the modulo operation with modulus T in which theremainder is in a range 0, 1, 2, . . . , T−1.
 9. The data storage tapedevice of claim 6, wherein the C2 encoder is further operable to applyan encoder characterized by a generator polynomial for a [N₂, K₂, d-min]Reed-Solomon (RS) code to each column of the subdata set.
 10. The datastorage tape device of claim 9, wherein the RS code is selected from agroup comprising a [96, 84, 13] code, a [128, 112, 17] code and a [192,168, 25] code.
 11. The data storage tape device of claim 9, wherein theC2 encoder comprises a linear feedback shift register (LFSR) havingfeedback coefficients provided by the generator polynomial.
 12. Acomputer program product of a non-transitory computer readable mediumusable with a programmable computer, the computer program product havingcomputer-readable code embodied therein for writing data to amulti-track data tape, the computer-readable code comprisinginstructions for: receiving a stream of user data symbols, the streamcomprising a data set; segmenting the data set into a plurality S ofunencoded subdata sets, each subdata set comprising an array having K₂rows and K₁ columns; for each of the S unencoded subdata sets,generating N₁−K₁ C1-parity bytes for each row of a subdata set andappending the C1-parity bytes to the end of the row to form an encodedC1 codeword having a length N₁; for each of the S unencoded subdatasets, generating N₂−K₂ C2-parity bytes for each column of the subdataset and appending the C2-parity bytes to the end of the column to forman encoded C2 codeword having a length N₂, whereby S encoded subdata setare generated having N₂ C1 codewords; from the S encoded subdata sets,forming a plurality (S×N₂)/2 codeword objects (COs), each comprising afirst header, a first C1 codeword, a second header and a second C1codeword; mapping each CO onto a logical data track according toinformation within the first and second headers of the CO; modulationencoding the COs into synchronized COs; and writing T synchronized COssimultaneously to the tape, where T equals the number of concurrentactive tracks on the tape.
 13. The computer program product of claim 12,further comprising instructions for: selecting a number of possibleparallel tracks T₁, T₂, . . . , T_(m) to which the COs can be written;and determining the C2 codeword length N₂ as the least common multipleof T₁, T₂, . . . , T_(m).
 14. The computer program product of claim 12,wherein the instructions for mapping each CO comprise instructions formapping a CO having an index n=CO_number to a logical track number tbased on a formula t=5 floor(2n/S)+n (mod T), where floor(x) denotes theinteger part of the real number x and (mod T) denotes the modulooperation with modulus T in which the remainder is in a range 0, 1, 2, .. . , T−1.
 15. The computer program product of claim 12, wherein theinstructions for generating N₂−K₂ C2-parity bytes comprise instructionsfor applying an encoding operation characterized by a generatorpolynomial for a [N₂, K₂, d_(min)] Reed-Solomon (RS) code to each columnof the subdata set.
 16. The computer program product of claim 15,wherein the RS code is selected from a group comprising a [96, 84, 13]code, a [128, 112, 17] code and a [192, 168, 25] code.
 17. A hardwareapparatus for encoding a stream of user data symbols comprising a dataset, comprising: a segmenting module operable to segment the data setinto a plurality S of unencoded subdata sets, each subdata setcomprising an array having K₂ rows and K₁ columns; a C1 encoder operableto generate N₁−K₁ C1-parity bytes for each row of the S unencodedsubdata sets and append the C1-parity bytes to the end of the row toform an encoded C1 codeword having a length N₁; a C2 encoder operable togenerate N₂−K₂ C2-parity bytes for each column of the S unencodedsubdata sets and append the C2-parity bytes to the end of the column toform an encoded C2 codeword having a length N₂, whereby S encodedsubdata set are generated having N₂ C1 codewords; a codeword objectformatter operable to form a plurality (S×N₂)/2 codeword objects (COs)from the S encoded subdata sets, each CO comprising a first header, afirst C1 codeword, a second header and a second C1 codeword; a codewordobject interleaver operable to map each CO onto a logical data trackaccording to information within the first and second headers of the CO;and a modulation encoder operable to encode the COs into synchronizedCOs for recording onto a multi-track storage media.
 18. The encodingapparatus of claim 17, wherein the C2 codeword length N₂ comprises theleast common multiple of T₁, T₂, . . . , T_(m), where T₁, T₂, . . . ,T_(m) are a number of possible parallel tracks to which the COs can bewritten.
 19. The encoding apparatus of claim 17, wherein the codewordobject interleaver is further operable to map a CO having an indexn=CO_number to a logical track number t based on a formula t=5floor(2n/S)+n (mod T), where floor(x) denotes the integer part of thereal number x and (mod T) denotes the modulo operation with modulus T inwhich the remainder is in a range 0, 1, 2, . . . , T−1.
 20. The encodingapparatus of claim 17, wherein the C2 encoder is further operable toapply an encoder characterized by a generator polynomial for a [N₂, K₂,d_(min)] Reed-Solomon (RS) code to each column of the subdata set. 21.The encoding apparatus of claim 20, wherein the RS code is selected froma group comprising a [96, 84, 13] code, a [128, 112, 17] code and a[192, 168, 25] code.
 22. The encoding apparatus of 20, wherein the C2encoder comprises a linear feedback shift register (LFSR) havingfeedback coefficients provided by the generator polynomial.
 23. A methodfor deploying computing infrastructure, comprising integrating computerreadable code into a computing system, wherein the code, in combinationwith the computing system, is capable of performing the following:receiving a stream of user data symbols, the stream comprising a dataset; segmenting the data set into a plurality S of unencoded subdatasets, each subdata set comprising an array having K₂ rows and K₁columns; for each of the S unencoded subdata sets, generating N₁−K₁C1-parity bytes for each row of a subdata set and appending theC1-parity bytes to the end of the row to form an encoded C1 codewordhaving a length N₁; for each of the S unencoded subdata sets, generatingN₂−K₂ C2-parity bytes for each column of the subdata set and appendingthe C2-parity bytes to the end of the column to form an encoded C2codeword having a length N₂, whereby S encoded subdata set are generatedhaving N₂ C1 codewords; from the S encoded subdata sets, forming aplurality (S×N₂)/2 codeword objects (COs), each comprising a firstheader, a first C1 codeword, a second header and a second C1 codeword;mapping each CO onto a logical data track according to informationwithin the first and second headers of the CO; modulation encoding theCOs into synchronized COs; and writing T synchronized COs simultaneouslyto the tape, where T equals the number of concurrent active tracks on adata storage tape.
 24. The method of claim 23, wherein mapping each COcomprises mapping a CO having an index n=CO_number to a logical tracknumber t based on a formula t=5 floor(2n/S)+n (mod T), where floor(x)denotes the integer part of the real number x and (mod T) denotes themodulo operation with modulus T in which the remainder is in a range 0,1, 2, . . . , T−1.
 25. The method of claim 23, wherein generating N₂−K₂C2-parity bytes comprises applying an encoding operation characterizedby a generator polynomial for a [N₂, K₂, d_(min)] Reed-Solomon (RS) codeto each column of the subdata set.
 26. A C2 encoder for a multi-trackdata tape device, the C2 encoder comprising: a first plurality of n=12shift registers R(0)-R(11), each register having an input and an output;a like plurality of adders A(0)-A(11), each adder having first andsecond inputs and an output, the first input of a last adder A(11)coupled to receive a plurality S of input subdata sets, each inputsubdata set comprising an array having S_(r) rows and S_(c) columns, thesecond input of each adder A(0)-A(11) being coupled to the output of aregister R(0)-R(11), respectively, and the output of each adder A(0)through A(10) being coupled to the input of a register (R1)-R(11),respectively, and the output of the last adder A(11) being coupled tothe input of the first register R(0); a second plurality of n−1=11fixed-byte multipliers M(0)-M(10), each multiplier M(0)-M(10) having aninput coupled to the output of the last adder A(11) and each multiplierM(0)-M(10) having an output coupled to the second input of each adderA(0)-A(10), respectively, the multipliers having feedback coefficientsα^(c) given by a generator polynomial of a [N2=96,K2=84,13] Reed-Solomoncode, the feedback coefficients comprising: M(0): α²²⁴; M(1): α³²; M(2):α²⁰⁹; M(3): α⁹⁹; M(4): α³²; M(5): α⁸⁰; M(6): α³²; M(7): α⁹⁹; M(8): α²⁰⁹;M(9): α³²; and M(10): α²²⁴; wherein the C2 encoder is operable togenerate N₂−K₂=n=12 C2-parity bytes for each column of the input subdataset and append the C2-parity bytes to the end of the column to form anencoded C2 codeword having a length N₂, whereby S C2-extended outputsubdata sets are generated, each C2-extended output subdata set havingS_(c) C2 codewords.
 27. The C2 encoder of claim 26, wherein: multipliersM(0) and M(10) comprise a single multiplier; multipliers M(1), M(4),M(6) and M(9) comprise a single multiplier; multipliers M(2) and M(8)comprise a single multiplier; and multipliers M(3) and M(7) comprise asingle multiplier.
 28. The C2 encoder of claim 26, wherein input subdatasets are unencoded subdata sets received from a segmenting moduleoperable to segment a stream of user data symbols comprising a data set,each unencoded subdata set comprising an array having S_(r)=K₂ rows andS_(c)=K₁ columns.
 29. The C2 encoder of claim 26, wherein input subdatasets are C1-encoded subdata sets received from a C1 encoder generatingcodewords having a length N₁, each C1-encoded subdata set comprising anarray having S_(r)=K₂ rows and S_(c)=N₁ columns.